package com.demo.gulimall.product.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.*;
import java.io.Serializable;
import java.util.List;

import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

/**
 * 商品三级分类
 *
 * @author Chen Yuan
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@TableName("pms_category")
public class Category implements Serializable {
	/** 分类id */
	@TableId(type = IdType.ID_WORKER) // 老版本
    //@TableId(type = IdType.ASSIGN_ID) // 新版本
	@JsonSerialize(using = ToStringSerializer.class)
	@TableField(value = "`cat_id`")
	private Long catId;

	/** 分类名称 */
	@TableField(value = "`name`")
	private String name;

	/** 父分类id */
	@JsonSerialize(using = ToStringSerializer.class)
	@TableField(value = "`parent_cid`")
	private Long parentCid;

	/** 层级 */
	@TableField(value = "`cat_level`")
	private Integer catLevel;

	/** 是否显示[0-不显示，1显示] */
	@TableField(value = "`show_status`")
	private Byte showStatus;

	/** 排序 */
	@TableField(value = "`sort`")
	private Integer sort;

	/** 图标地址 */
	@TableField(value = "`icon`")
	private String icon;

	/** 计量单位 */
	@TableField(value = "`product_unit`")
	private String productUnit;

	/** 商品数量 */
	@TableField(value = "`product_count`")
	private Integer productCount;

	// 子分类
	@TableField(exist = false)
	private List<Category> children;

}
